| All Test Modules | GitHub Repository | Designed for use with JUnit. |
| Tests | Failures | Errors | Skipped | Success rate | Time |
|---|---|---|---|---|---|
| 250 | 0 | 0 | 2 | 99.20% | 4.935 |
| Note: failures are anticipated and checked for with assertions while errors are unanticipated. |
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Tests | Errors | Failures | Skipped | Time(s) | Time Stamp | Host |
|---|
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Collects nodes in ReferenceHolder 🔗 | Success | 0.012 | |
| Accumulates data across multiple node types 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| with(ReferenceHolder) creates builder 🔗 | Success | 0.000 | |
| with(ReferenceHolder, Set) creates builder with custom node set 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Multiple visitors can be chained 🔗 | Success | 0.001 | |
| Builder returns itself for chaining 🔗 | Success | 0.004 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds assignments 🔗 | Success | 0.004 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds enhanced for loops 🔗 | Success | 0.004 | |
| Provides access to loop variable 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds if statements 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds all method declarations 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Filters by method name 🔗 | Success | 0.001 | |
| Finds all method invocations 🔗 | Success | 0.003 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds return statements 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds type declarations 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Finds variable declarations 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| processor() provides access to underlying ASTProcessor 🔗 | Success | 0.004 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Negates simple name without parentheses 🔗 | Success | 0.001 | |
| null AST throws exception 🔗 | Success | 0.003 | |
| Negates infix expression with parentheses 🔗 | Success | 0.001 | |
| null condition throws exception 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| SimpleName not matching varName is not identity 🔗 | Success | 0.001 | |
| SimpleName matching varName is identity 🔗 | Success | 0.001 | |
| InfixExpression is not identity 🔗 | Success | 0.001 | |
| null varName returns false 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| SimpleName is not negated 🔗 | Success | 0.000 | |
| PrefixExpression with MINUS is not negated 🔗 | Success | 0.001 | |
| PrefixExpression with NOT is negated 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| SimpleName does not need parentheses 🔗 | Success | 0.000 | |
| InfixExpression needs parentheses 🔗 | Success | 0.000 | |
| null input throws exception 🔗 | Success | 0.004 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Strips negation from PrefixExpression with NOT 🔗 | Success | 0.001 | |
| Returns original if not negated 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Validation: processEach without compilationUnit should throw 🔗 | Success | 0.007 | |
| Collect annotations using collect() method 🔗 | Success | 0.014 | |
| Find @SuppressWarnings annotations (SingleMemberAnnotation) 🔗 | Success | 0.011 | |
| Find @Override annotations 🔗 | Success | 0.012 | |
| Find @Deprecated annotations by fully qualified name 🔗 | Success | 0.014 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Validation: FieldVisitorBuilder requires both annotation and type 🔗 | Success | 0.015 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Find static imports 🔗 | Success | 0.010 | |
| Find regular imports 🔗 | Success | 0.010 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Find single method call 🔗 | Success | 0.008 | |
| Collect method calls using collect() 🔗 | Success | 0.019 | |
| Find multiple method calls 🔗 | Success | 0.014 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Early termination when processor returns false 🔗 | Success | 0.005 | |
| Excluding processed nodes 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| ReferenceHolder can be used to collect data 🔗 | Success | 0.013 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Multiple nodes are correctly stored in ReferenceHolder 🔗 | Success | 0.014 | |
| ReferenceHolder is correctly populated in processEach and accessible afterwards 🔗 | Success | 0.015 | |
| ReferenceHolder.get() returns null for non-existent key - edge case from PR #494 🔗 | Success | 0.011 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| collect() gathers all found nodes 🔗 | Success | 0.041 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| forAnnotation skips already processed nodes 🔗 | Success | 0.019 | |
| forAnnotation finds MarkerAnnotation and populates ReferenceHolder correctly 🔗 | Success | 0.014 | |
| forAnnotation with andImports also finds imports 🔗 | Success | 0.016 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| forField with annotation finds FieldDeclaration 🔗 | Success | 0.016 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| forImport finds ImportDeclaration and populates ReferenceHolder correctly 🔗 | Success | 0.017 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| forMethodCalls with andStaticImports and andImportsOf 🔗 | Success | 0.018 | |
| forMethodCalls finds MethodInvocation and populates ReferenceHolder correctly 🔗 | Success | 0.027 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| METHOD_DEFAULT_CHARSET is 'defaultCharset' 🔗 | Success | 0.000 | |
| METHOD_GET_PROPERTY is 'getProperty' 🔗 | Success | 0.000 | |
| METHOD_LINE_SEPARATOR is 'lineSeparator' 🔗 | Success | 0.000 | |
| FIELD_UTF8 is 'UTF_8' 🔗 | Success | 0.000 | |
| METHOD_TOSTRING is 'toString' 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| JAVA_LANG_DOUBLE is 'java.lang.Double' 🔗 | Success | 0.000 | |
| JAVA_LANG_STRING is 'java.lang.String' 🔗 | Success | 0.000 | |
| JAVA_LANG_MATH is 'java.lang.Math' 🔗 | Success | 0.000 | |
| JAVA_LANG_LONG is 'java.lang.Long' 🔗 | Success | 0.000 | |
| JAVA_LANG_INTEGER is 'java.lang.Integer' 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| METHOD_CONCAT is 'concat' 🔗 | Success | 0.001 | |
| METHOD_SUM is 'sum' 🔗 | Success | 0.000 | |
| METHOD_MIN is 'min' 🔗 | Success | 0.000 | |
| METHOD_MAX is 'max' 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| METHOD_STREAM is 'stream' 🔗 | Success | 0.000 | |
| METHOD_FOREACH is 'forEach' 🔗 | Success | 0.000 | |
| METHOD_REDUCE is 'reduce' 🔗 | Success | 0.000 | |
| METHOD_ANY_MATCH is 'anyMatch' 🔗 | Success | 0.000 | |
| METHOD_NONE_MATCH is 'noneMatch' 🔗 | Success | 0.000 | |
| METHOD_FILTER is 'filter' 🔗 | Success | 0.000 | |
| METHOD_MAP is 'map' 🔗 | Success | 0.000 | |
| METHOD_ALL_MATCH is 'allMatch' 🔗 | Success | 0.001 | |
| METHOD_FOR_EACH_ORDERED is 'forEachOrdered' 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Chaining stops after first match 🔗 | Success | 0.008 | |
| isHandled() returns true after match 🔗 | Success | 0.006 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| ifPrefixIncrementOrDecrement matches decrement 🔗 | Success | 0.007 | |
| ifPrefixExpression matches PrefixExpression 🔗 | Success | 0.009 | |
| ifMethodInvocation matches MethodInvocation 🔗 | Success | 0.008 | |
| ifSimpleName matches SimpleName 🔗 | Success | 0.006 | |
| ifAssignmentWithOperator matches specific operator 🔗 | Success | 0.006 | |
| ifPostfixIncrementOrDecrement matches increment 🔗 | Success | 0.007 | |
| ifAssignment matches Assignment 🔗 | Success | 0.006 | |
| ifMethodInvocationNamed matches by method name 🔗 | Success | 0.010 | |
| ifPostfixExpression matches PostfixExpression 🔗 | Success | 0.003 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| isHandled() returns false initially 🔗 | Success | 0.009 | |
| on() creates NodeMatcher instance 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| ifTypeMatching with predicate 🔗 | Success | 0.011 | |
| ifType matches by class type 🔗 | Success | 0.006 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| ifThrowStatement matches ThrowStatement 🔗 | Success | 0.008 | |
| ifReturnStatement matches ReturnStatement 🔗 | Success | 0.008 | |
| ifIfStatementWithElse matches if with else 🔗 | Success | 0.011 | |
| ifVariableDeclaration matches VariableDeclarationStatement 🔗 | Success | 0.007 | |
| ifContinueStatement matches ContinueStatement 🔗 | Success | 0.013 | |
| ifIfStatement matches IfStatement 🔗 | Success | 0.008 | |
| ifBlock matches Block 🔗 | Success | 0.007 | |
| ifExpressionStatement matches ExpressionStatement 🔗 | Success | 0.010 | |
| ifBreakStatement matches BreakStatement 🔗 | Success | 0.007 | |
| ifVariableDeclarationMatching with predicate 🔗 | Success | 0.008 | |
| ifIfStatementWithoutElse matches if without else 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| orElse does not execute when already handled 🔗 | Success | 0.010 | |
| orElse executes when no matcher handled 🔗 | Success | 0.004 | |
| orElseGet returns empty when already handled 🔗 | Success | 0.006 | |
| orElseGet returns Optional when not handled 🔗 | Success | 0.005 | |
| orElseDo executes runnable when not handled 🔗 | Success | 0.006 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| isControlFlowStatement returns true for throw 🔗 | Success | 0.009 | |
| isControlFlowStatement returns true for continue 🔗 | Success | 0.004 | |
| getExpression returns Optional with expression 🔗 | Success | 0.011 | |
| getAssignment returns empty for non-assignment 🔗 | Success | 0.007 | |
| getAssignment returns Optional with assignment 🔗 | Success | 0.007 | |
| isAssignmentStatement returns false for non-assignment 🔗 | Success | 0.008 | |
| isControlFlowStatement returns true for return 🔗 | Success | 0.007 | |
| isAssignmentStatement returns true for assignment 🔗 | Success | 0.007 | |
| isControlFlowStatement returns true for break 🔗 | Success | 0.005 | |
| isControlFlowStatement returns false for variable declaration 🔗 | Success | 0.006 | |
| getExpression returns empty for non-expression statement 🔗 | Success | 0.003 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| ifFirst executes for first statement 🔗 | Success | 0.071 | |
| ifLast executes for last statement 🔗 | Success | 0.011 | |
| ifNotLast executes for non-last statement 🔗 | Success | 0.012 | |
| ifLast does not execute for non-last statement 🔗 | Success | 0.011 | |
| ifOnly executes for only statement 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| Context chaining with ifLast 🔗 | Success | 0.009 | |
| getRemainingCount is zero for last statement 🔗 | Success | 0.010 | |
| Single statement is first, last, and only 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| processBlock allows early termination 🔗 | Success | 0.009 | |
| forSingle creates context for single statement 🔗 | Success | 0.008 | |
| forEachInBlock processes all statements 🔗 | Success | 0.011 | |
| processBlock returns empty when no match 🔗 | Success | 0.014 | |
| forStatement creates context with position info 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| getRemainingStatements returns empty for last statement 🔗 | Success | 0.005 | |
| getPrecedingStatements returns statements before current 🔗 | Success | 0.006 | |
| getRemainingStatements returns statements after current 🔗 | Success | 0.007 | |
| getPrecedingStatements returns empty for first statement 🔗 | Success | 0.009 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| nextIs returns true for matching type 🔗 | Success | 0.007 | |
| nextIs with predicate returns true when both match 🔗 | Success | 0.019 | |
| nextMatches returns true when predicate matches 🔗 | Success | 0.006 | |
| matcher returns NodeMatcher for statement 🔗 | Success | 0.006 | |
| nextMatches returns false when predicate does not match 🔗 | Success | 0.006 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| getNextStatement returns next statement 🔗 | Success | 0.006 | |
| getPreviousStatement returns previous statement 🔗 | Success | 0.020 | |
| getPreviousStatement returns empty for first statement 🔗 | Success | 0.011 | |
| getStatementAt returns empty for out of bounds 🔗 | Success | 0.008 | |
| getNextStatement returns empty for last statement 🔗 | Success | 0.010 | |
| getStatementAt returns statement at negative offset 🔗 | Success | 0.006 | |
| getStatementAt returns statement at positive offset 🔗 | Success | 0.013 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| getRemainingCount returns correct count 🔗 | Success | 0.008 | |
| isMiddle returns false for first statement 🔗 | Success | 0.006 | |
| hasNext returns false for last statement 🔗 | Success | 0.005 | |
| isOnly returns true for single statement 🔗 | Success | 0.005 | |
| hasNext returns true when there are more statements 🔗 | Success | 0.006 | |
| isLast returns true for last statement 🔗 | Success | 0.006 | |
| isMiddle returns true for middle statement 🔗 | Success | 0.006 | |
| isFirst returns false for non-first statement 🔗 | Success | 0.006 | |
| isFirst returns true for first statement 🔗 | Success | 0.006 | |
| hasPrevious returns true when there are previous statements 🔗 | Success | 0.003 | |
| hasPrevious returns false for first statement 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testAnnotationPatternMatching 🔗 | Success | 0.727 | |
| testNoMatchesForDifferentAnnotation 🔗 | Success | 0.013 | |
| testAnnotationWithQualifiedType 🔗 | Success | 0.014 | |
| testMultipleAnnotationMatches 🔗 | Success | 0.018 | |
| testAnnotationWithPlaceholder 🔗 | Success | 0.053 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testMultiPlaceholderConsistencyCheck 🔗 | Success | 0.013 | |
| testMultiPlaceholderMatchesZeroArguments 🔗 | Success | 0.005 | |
| testMultiPlaceholderMatchesOneArgument 🔗 | Success | 0.002 | |
| testMultiPlaceholderMatchesMultipleArguments 🔗 | Success | 0.002 | |
| testMultiPlaceholderMatchesVariousArgumentTypes 🔗 | Success | 0.010 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testSimpleField 🔗 | Success | 0.010 | |
| testFieldWithPlaceholderType 🔗 | Success | 0.003 | |
| testSimpleMarkerAnnotation 🔗 | Success | 0.008 | |
| testSimpleMethodCall 🔗 | Success | 0.011 | |
| testSimpleImport 🔗 | Success | 0.005 | |
| testMultipleImports 🔗 | Success | 0.009 | |
| testFieldWithAnnotation 🔗 | Success | 0.012 | |
| testMultipleAnnotationsOnSameElement 🔗 | Success | 0.009 | |
| testMethodCallWithMultipleArguments 🔗 | Success | 0.002 | |
| testAnnotationWithParameters 🔗 | Success | 0.007 | |
| testMethodCallWithPlaceholderQualifier 🔗 | Success | 0.005 | |
| testStaticImport 🔗 | Success | 0.007 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testParseSimpleExpression 🔗 | Success | 0.004 | |
| testParsePlaceholderExpression 🔗 | Success | 0.005 | |
| testParseMethodInvocation 🔗 | Success | 0.004 | |
| testParseIfStatement 🔗 | Skipped | org.opentest4j.AssertionFailedError: Parser should return a non-null node ==> expected: not <null>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertNotNull.failNull(AssertNotNull.java:49)
at org.junit.jupiter.api.AssertNotNull.assertNotNull(AssertNotNull.java:35)
at org.junit.jupiter.api.Assertions.assertNotNull(Assertions.java:312)
at org.sandbox.jdt.triggerpattern.test.PatternParserTest.testParseIfStatement(PatternParserTest.java:73)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) |
0.000 |
| testParseReturnStatement 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testNonPlaceholderMustMatchExactly 🔗 | Success | 0.007 | |
| testMultipleSamePlaceholdersMustMatch 🔗 | Success | 0.011 | |
| testDifferentPlaceholdersBindIndependently 🔗 | Success | 0.011 | |
| testPlaceholderBinds 🔗 | Success | 0.008 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testMultipleSamePlaceholder 🔗 | Success | 0.020 | |
| testNoMatchesFound 🔗 | Success | 0.006 | |
| testFindSingleMatch 🔗 | Success | 0.012 | |
| testStatementPattern 🔗 | Skipped | org.opentest4j.AssertionFailedError: Should find one statement pattern match ==> expected: <1> but was: <0>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:563)
at org.sandbox.jdt.triggerpattern.test.TriggerPatternEngineTest.testStatementPattern(TriggerPatternEngineTest.java:134)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) |
0.000 |
| testFindMultipleMatches 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testAncestorNavigation 🔗 | Success | 0.020 | |
| testAssignmentByOperator 🔗 | Success | 0.008 | |
| testHierarchicalSearch 🔗 | Success | 0.009 | |
| testInfixExpressionByOperator 🔗 | Success | 0.014 | |
| testMethodDeclarationByName 🔗 | Success | 0.000 | |
| testSingleVisitor 🔗 | Success | 0.004 | |
| testCatchClauseByExceptionType 🔗 | Success | 0.019 | |
| testFieldDeclarationByType 🔗 | Success | 0.019 | |
| testClassInstanceCreationWithTypeAndNavigate 🔗 | Success | 0.005 | |
| testMethodInvocationFiltering 🔗 | Success | 0.004 | |
| testTypeDeclarationByName 🔗 | Success | 0.000 | |
| testSuperMethodInvocationByName 🔗 | Success | 0.009 | |
| testBasicChaining 🔗 | Success | 0.006 | |
| testForStatementWithTypeFilter 🔗 | Success | 0.018 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testCoordinatedMultiPhaseProcessing 🔗 | Success | 0.023 | |
| testCombiningVisitorsWithOr 🔗 | Success | 0.002 | |
| testCombiningVisitorsWithAnd 🔗 | Success | 0.001 | |
| testDynamicVisitorRemoval 🔗 | Success | 0.001 | |
| testTrackingProcessedNodes 🔗 | Success | 0.003 | |
| testNegateFilter 🔗 | Success | 0.000 | |
| testStatefulVisitorBehavior 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testMethodNameFiltering 🔗 | Success | 0.001 | |
| testMethodNameFilteringTraditional 🔗 | Success | 0.000 | |
| testTraditionalVisitorApproach 🔗 | Success | 0.004 | |
| testLambdaExpression 🔗 | Success | 0.001 | |
| testSkipChildNodes 🔗 | Success | 0.001 | |
| testMultipleNodeTypes 🔗 | Success | 0.004 | |
| testVisitEndCallback 🔗 | Success | 0.001 | |
| testBasicMethodReference 🔗 | Success | 0.000 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| matcherTest 🔗 | Success | 0.005 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testCountingWithStaticMethod 🔗 | Success | 0.008 | |
| testComplexDataStructures 🔗 | Success | 0.002 | |
| testCollectingNodePositions 🔗 | Success | 0.001 | |
| testCountingNodes 🔗 | Success | 0.002 | |
| testLazyInitialization 🔗 | Success | 0.003 | |
| testSharedDataBetweenCallbacks 🔗 | Success | 0.001 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testCallbackSignatures 🔗 | Success | 0.003 | |
| testBasicUsagePattern 🔗 | Success | 0.001 | |
| testVisitEndCallbacks 🔗 | Success | 0.008 | |
| testApiOverview 🔗 | Success | 0.001 | |
| testDataSharingPatterns 🔗 | Success | 0.001 | |
| testStaticHelperMethods 🔗 | Success | 0.001 | |
| testVisitorRegistration 🔗 | Success | 0.008 |
| Name | Status | Type | Time(s) |
|---|---|---|---|
| testNestedHierarchicalSearch 🔗 | Success | 0.005 | |
| testFluentApiWithMethodFiltering 🔗 | Success | 0.004 | |
| testMethodInvocationByType 🔗 | Success | 0.001 | |
| testMultiPhaseProcessing 🔗 | Success | 0.004 | |
| testSimpleFluentApi 🔗 | Success | 0.000 | |
| testDynamicVisitorModification 🔗 | Success | 0.004 | |
| testFluentApiWithNavigation 🔗 | Success | 0.001 | |
| testComplexDataCollection 🔗 | Success | 0.003 |